A high-performance transaction system often consists of multiple data stores where the data stores operate separately but concurrently. In order to make these data stores more fault tolerant, each data store usually has its own log to perform transactional update. To perform global atomic transaction across all data stores, a centralized log with 2-phase commit is often used to unify each transaction domain in the data stores into a global transaction domain so that transactions spanning multiple data stores can be made atomic. This centralized log can easily become performance bottleneck when the number of data stores is high.
Throughout the description, similar reference numbers may be used to identify similar elements.